﻿using System;

using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Maestro_Proveedores;
using System.IO;
using System.Diagnostics;
using System.Data.SqlClient;

namespace Maestro_Proveedores.Forms
{
    public partial class INDEX : Form
    {
        /// <summary>
        /// Esta variable es utilizada como bandera en el formulario RegistrarProveedor (private void registrarProveedor_Activated(object sender, EventArgs e)) para actualizar la lista de bienes/servicios de este formualrio, cada vez que se haya modificado algun registro en el formulario ClasificacionBienesServicios
        /// </summary>
        public bool aux = false;
        /// <summary>
        /// Mensaje que indica que un proveedor no tiene permisos para acceder a un formualrio determinado.
        /// </summary>
        private string accesoDenegado = "No tiene permiso para acceder a esta sección.";
        private _Maestro_Proveedores_CORPORATIVADataSetTableAdapters.PRV_REGISTRO_ACCESOTableAdapter pRV_REGISTRO_ACCESOTableAdapter = new _Maestro_Proveedores_CORPORATIVADataSetTableAdapters.PRV_REGISTRO_ACCESOTableAdapter();
        private Auditoria.CORPORATIVADataSetTableAdapters.SEG_PERMISOSTableAdapter sEG_PERMISOSTableAdapter = new Auditoria.CORPORATIVADataSetTableAdapters.SEG_PERMISOSTableAdapter();
        private Auditoria.CORPORATIVADataSetTableAdapters.SEG_USUARIOSTableAdapter sEG_USUARIOSTableAdapter = new Auditoria.CORPORATIVADataSetTableAdapters.SEG_USUARIOSTableAdapter();
        private Auditoria.CORPORATIVADataSetTableAdapters.SEG_GRUPOSTableAdapter sEG_GRUPOSTableAdapter = new Auditoria.CORPORATIVADataSetTableAdapters.SEG_GRUPOSTableAdapter();
        private Auditoria.CORPORATIVADataSet aUDITORIADataSet = new Auditoria.CORPORATIVADataSet();
        public Auditoria.CORPORATIVADataSet.SEG_PERMISOSRow sEG_PERMISOSRow = null;
        private Auditoria.CORPORATIVADataSet.SEG_USUARIOSRow sEG_USUARIOSRow = null;

        public INDEX()
        {
            InitializeComponent();
        }

        private void inicio_Load(object sender, EventArgs e)
        {
            //--- Cambio el nombre del aplicacion y muestro un aviso para indicar que estoy trabajando en la base de datos de Pruebas
            System.Data.SqlClient.SqlConnectionStringBuilder builder = new System.Data.SqlClient.SqlConnectionStringBuilder();
            builder.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["Maestro_Proveedores.Properties.Settings.PRV_ConnectionString"].ConnectionString;
            if (builder.DataSource == "AWILCHES")
            {
                MessageBox.Show("BASE DE DATOS DE PRUEBA!!!");
                this.Text = "BASE DE DATOS DE PRUEBA!!!";
            }

            //--- registro este formulario en la lista...
            Maestro_Proveedores.herramientas.Redirect.addNewForm(this);
            //--- inicio sesion...
            if (!this.iniciarSesion())
                return;
            //--- verifico la conexion y cargo los formularios y reportes...
            new verificarConexion().ShowDialog();
            new CargarFormularios().ShowDialog();
            //-- registro el inicio de sesion
            this.registrarInicioSesion();
            //-- abro la ventana principal "si aplica"
            this.abrirVentanaPrincipal();

            this.aCTUALIZARnOTIFICACIONESbutton_Click(sender, e);
        }
        /// <summary>
        /// Iniciar sesion en el Login general de COTECMAR (Diseñado por Deivi Ibarra)
        /// </summary>
        private bool iniciarSesion()
        {
            try
            {
                MAESTROS.FORMLOGIN LOGEAR = new MAESTROS.FORMLOGIN(new MAESTROS.ConexionBD());
                if (LOGEAR.ShowDialog() == DialogResult.OK)
                {
                    if (this.sEG_USUARIOSTableAdapter.FillByUsuario(this.aUDITORIADataSet.SEG_USUARIOS, LOGEAR.USUARIO.Text) > 0)
                    {
                        Maestro_Proveedores.Session.Seg_USUARRow = this.aUDITORIADataSet.SEG_USUARIOS[0];
                        this.sEG_USUARIOSRow = this.aUDITORIADataSet.SEG_USUARIOS[0];
                    }
                }
                else
                {
                    Maestro_Proveedores.herramientas.Redirect.closeAllForms();
                    return false;
                }
            }
            catch (Exception ex)
            {
                Maestro_Proveedores.herramientas.MessageException.show(ex);
                Maestro_Proveedores.herramientas.Redirect.closeAllForms();
                return false;
            }
            return true;
        }
        /// <summary>
        /// Redireccionar al usuario a la ventana principal dependiendo del grupo al que pertenezca.
        /// </summary>
        private void abrirVentanaPrincipal()
        {
            if (this.sEG_USUARIOSRow != null)
            {
                //-- administradores
                //if (this.sEG_USUARIOSRow.CODGRU.Equals("14"))
                //this.agregarProveedorToolStripMenuItem_Click(null, null);
                //else 
                //-- PROEEDORES
                //if (this.sEG_USUARIOSRow.CODGRU.Equals("13"))
                    //this.agregarProveedorToolStripMenuItem_Click(null, null);
                //else 
                //-- almacen
                if (this.sEG_USUARIOSRow.CODGRU.Equals("19"))
                    this.registrarRechazoToolStripMenuItem_Click(null, null);
                //-- consulta
                else if (this.sEG_USUARIOSRow.CODGRU.Equals("14"))
                    this.consultarProveedoresToolStripMenuItem_Click(null, null);
                //-- adquisiciones
                else if (this.sEG_USUARIOSRow.CODGRU.Equals("20"))
                    this.reclamosToolStripMenuItem_Click(null, null);
                //-- Contratos
                else if (this.sEG_USUARIOSRow.CODGRU.Equals("24"))
                    this.consultarProveedoresToolStripMenuItem_Click(null, null);
            }
        }

        private void registrarInicioSesion()
        {
            if (this.sEG_USUARIOSRow != null)
            {
                //-- inicializo el identificador de la sesion
                DateTime now= DateTime.Now;
                Maestro_Proveedores.Session.IdSesion = new Random().Next(1000, 9999) + "." + now.Year + "-" + now.Month + "-" + now.Day + "-" + now.Hour + "-" + now.Minute + "-" + now.Second + "." + Session.Seg_USUARRow.USUARIO;
                Auditoria.CORPORATIVADataSet.SEG_GRUPOSDataTable sEG_GRUPOSDataTable= new Auditoria.CORPORATIVADataSet.SEG_GRUPOSDataTable();
                this.sEG_GRUPOSTableAdapter.FillByCodGrupo(sEG_GRUPOSDataTable,Maestro_Proveedores.Session.Seg_USUARRow.CODGRU);
                string perfil=string.Empty;
                if(sEG_GRUPOSDataTable.Rows.Count==0)
                    perfil=Maestro_Proveedores.Session.Seg_USUARRow.CODGRU;
                else
                    perfil=sEG_GRUPOSDataTable[0].NOMBRE;
                this.pRV_REGISTRO_ACCESOTableAdapter.Insert
                    (
                      "INICIO DE SESION",
                      DateTime.Now,
                      Maestro_Proveedores.Session.Seg_USUARRow.USUARIO,
                      Maestro_Proveedores.Session.Seg_USUARRow.CARGO,
                      Maestro_Proveedores.Session.Seg_USUARRow.NOMBRE,
                      Maestro_Proveedores.Session.Seg_USUARRow.CEDULA,
                      Maestro_Proveedores.Session.Seg_USUARRow.DIRECCION,
                      perfil,
                      SystemInformation.UserName,
                      SystemInformation.ComputerName,
                      Maestro_Proveedores.Session.IdSesion
                    );
            }
        }
        /// <summary>
        /// Con este evento se garantiza el registro del cierre de sesion del usuario
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void INDEX_FormClosed(object sender, FormClosedEventArgs e)
        {
            if (Maestro_Proveedores.Session.Seg_USUARRow != null)
            {
                Auditoria.CORPORATIVADataSet.SEG_GRUPOSDataTable sEG_GRUPOSDataTable = new Auditoria.CORPORATIVADataSet.SEG_GRUPOSDataTable();
                this.sEG_GRUPOSTableAdapter.FillByCodGrupo(sEG_GRUPOSDataTable, Maestro_Proveedores.Session.Seg_USUARRow.CODGRU);
                string perfil = string.Empty;
                if (sEG_GRUPOSDataTable.Rows.Count == 0)
                    perfil = Maestro_Proveedores.Session.Seg_USUARRow.CODGRU;
                else
                    perfil = sEG_GRUPOSDataTable[0].NOMBRE;
                this.pRV_REGISTRO_ACCESOTableAdapter.Insert
                    (
                      "FIN DE SESION",
                      DateTime.Now,
                      Maestro_Proveedores.Session.Seg_USUARRow.USUARIO,
                      Maestro_Proveedores.Session.Seg_USUARRow.CARGO,
                      Maestro_Proveedores.Session.Seg_USUARRow.NOMBRE,
                      Maestro_Proveedores.Session.Seg_USUARRow.CEDULA,
                      Maestro_Proveedores.Session.Seg_USUARRow.DIRECCION,
                      perfil,
                      SystemInformation.UserName,
                      SystemInformation.ComputerName,
                      Maestro_Proveedores.Session.IdSesion
                    );
            }
        }   
        
        private void ayudaContenidoToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Help.ShowHelp(this, ConfiguracionDelSistema.manualDeUsuario, HelpNavigator.TableOfContents);            
        }

        private void agregarProveedorToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (this.sEG_PERMISOSTableAdapter.FillByTipoGrupo(this.aUDITORIADataSet.SEG_PERMISOS, RegistrarProveedor.TIPO + sEG_USUARIOSRow.CODGRU) > 0)
            {
                if (this.aUDITORIADataSet.SEG_PERMISOS[0].INGRESAR.Equals(true))
                {
                    Maestro_Proveedores.Session.Seg_PERMRow = this.aUDITORIADataSet.SEG_PERMISOS[0];
                    try { Maestro_Proveedores.herramientas.Redirect.open("RegistrarProveedor"); }
                    catch (Exception ex) { MessageBox.Show(ex.Message); }
                }
                else
                {
                    System.Windows.Forms.MessageBox.Show(this.accesoDenegado, "", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                }
            }
            else
            {
                System.Windows.Forms.MessageBox.Show(this.accesoDenegado, "", MessageBoxButtons.OK, MessageBoxIcon.Stop);
            }
        }
        
        private void evaluaciónJurídicaToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (this.sEG_PERMISOSTableAdapter.FillByTipoGrupo(this.aUDITORIADataSet.SEG_PERMISOS, CalificacionJuridica.TIPO + sEG_USUARIOSRow.CODGRU) > 0)
            {
                if (this.aUDITORIADataSet.SEG_PERMISOS[0].INGRESAR.Equals(true))
                {
                    Maestro_Proveedores.Session.Seg_PERMRow = this.aUDITORIADataSet.SEG_PERMISOS[0];
                    try { Maestro_Proveedores.herramientas.Redirect.open("CalificacionJuridica"); }
                    catch (Exception ex) { MessageBox.Show(ex.Message); }
                }
                else
                {
                    System.Windows.Forms.MessageBox.Show(this.accesoDenegado, "", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                }
            }
            else
            {
                System.Windows.Forms.MessageBox.Show(this.accesoDenegado, "", MessageBoxButtons.OK, MessageBoxIcon.Stop);
            }

        }

        private void evaluaciónFinancieraToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (this.sEG_PERMISOSTableAdapter.FillByTipoGrupo(this.aUDITORIADataSet.SEG_PERMISOS, CalificacionFinanciera.TIPO + sEG_USUARIOSRow.CODGRU) > 0)
            {
                if (this.aUDITORIADataSet.SEG_PERMISOS[0].INGRESAR.Equals(true))
                {
                    Maestro_Proveedores.Session.Seg_PERMRow = this.aUDITORIADataSet.SEG_PERMISOS[0];
                    try { Maestro_Proveedores.herramientas.Redirect.open("CalificacionFinanciera"); }
                    catch (Exception ex) { MessageBox.Show(ex.Message); }
                }
                else
                {
                    System.Windows.Forms.MessageBox.Show(this.accesoDenegado, "", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                }
            }
            else
            {
                System.Windows.Forms.MessageBox.Show(this.accesoDenegado, "", MessageBoxButtons.OK, MessageBoxIcon.Stop);
            }

        }

        private void capacitacionesToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (this.sEG_PERMISOSTableAdapter.FillByTipoGrupo(this.aUDITORIADataSet.SEG_PERMISOS, DesarrolloProveedores.TIPO + sEG_USUARIOSRow.CODGRU) > 0)
            {
                if (this.aUDITORIADataSet.SEG_PERMISOS[0].INGRESAR.Equals(true))
                {
                    Maestro_Proveedores.Session.Seg_PERMRow = this.aUDITORIADataSet.SEG_PERMISOS[0];
                    try { Maestro_Proveedores.herramientas.Redirect.open("DesarrolloProveedores"); }
                    catch (Exception ex) { MessageBox.Show(ex.Message); }
                }
                else
                {
                    System.Windows.Forms.MessageBox.Show(this.accesoDenegado, "", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                }
            }
            else
            {
                System.Windows.Forms.MessageBox.Show(this.accesoDenegado, "", MessageBoxButtons.OK, MessageBoxIcon.Stop);
            }

        }

        private void registrarToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (this.sEG_PERMISOSTableAdapter.FillByTipoGrupo(this.aUDITORIADataSet.SEG_PERMISOS, HorasHombre.TIPO + sEG_USUARIOSRow.CODGRU) > 0)
            {
                if (this.aUDITORIADataSet.SEG_PERMISOS[0].INGRESAR.Equals(true))
                {
                    Maestro_Proveedores.Session.Seg_PERMRow = this.aUDITORIADataSet.SEG_PERMISOS[0];
                    try { Maestro_Proveedores.herramientas.Redirect.open("HorasHombre"); }
                    catch (Exception ex) { MessageBox.Show(ex.Message); }
                }
                else
                {
                    System.Windows.Forms.MessageBox.Show(this.accesoDenegado, "", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                }
            }
            else
            {
                System.Windows.Forms.MessageBox.Show(this.accesoDenegado, "", MessageBoxButtons.OK, MessageBoxIcon.Stop);
            }

        }

        private void accidentesToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (this.sEG_PERMISOSTableAdapter.FillByTipoGrupo(this.aUDITORIADataSet.SEG_PERMISOS, Accidentes.TIPO + sEG_USUARIOSRow.CODGRU) > 0)
            {
                if (this.aUDITORIADataSet.SEG_PERMISOS[0].INGRESAR.Equals(true))
                {
                    Maestro_Proveedores.Session.Seg_PERMRow = this.aUDITORIADataSet.SEG_PERMISOS[0];
                    try { Maestro_Proveedores.herramientas.Redirect.open("Accidentes"); }
                    catch (Exception ex) { MessageBox.Show(ex.Message); }
                }
                else
                {
                    System.Windows.Forms.MessageBox.Show(this.accesoDenegado, "", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                }
            }
            else
            {
                System.Windows.Forms.MessageBox.Show(this.accesoDenegado, "", MessageBoxButtons.OK, MessageBoxIcon.Stop);
            }

        }

        private void toolStripMenuItem5_Click(object sender, EventArgs e)
        {
            if (this.sEG_PERMISOSTableAdapter.FillByTipoGrupo(this.aUDITORIADataSet.SEG_PERMISOS, RealizarEvaluacionDeDesempeno.TIPO + sEG_USUARIOSRow.CODGRU) > 0)
            {
                if (this.aUDITORIADataSet.SEG_PERMISOS[0].INGRESAR.Equals(true))
                {
                    Maestro_Proveedores.Session.Seg_PERMRow = this.aUDITORIADataSet.SEG_PERMISOS[0];
                    try { Maestro_Proveedores.herramientas.Redirect.open("RealizarEvaluacionDeDesempeno"); }
                    catch (Exception ex) { MessageBox.Show(ex.Message); }
                }
                else
                {
                    System.Windows.Forms.MessageBox.Show(this.accesoDenegado, "", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                }
            }
            else
            {
                System.Windows.Forms.MessageBox.Show(this.accesoDenegado, "", MessageBoxButtons.OK, MessageBoxIcon.Stop);
            }

        }

        private void cerrarSesiónToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            herramientas.Redirect.closeAllForms();
        }

        private void reclamosToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (this.sEG_PERMISOSTableAdapter.FillByTipoGrupo(this.aUDITORIADataSet.SEG_PERMISOS, Reclamos.TIPO + sEG_USUARIOSRow.CODGRU) > 0)
            {
                if (this.aUDITORIADataSet.SEG_PERMISOS[0].INGRESAR.Equals(true))
                {
                    Maestro_Proveedores.Session.Seg_PERMRow = this.aUDITORIADataSet.SEG_PERMISOS[0];
                    try { Maestro_Proveedores.herramientas.Redirect.open("Reclamos"); }
                    catch (Exception ex) { MessageBox.Show(ex.Message); }
                }
                else
                {
                    System.Windows.Forms.MessageBox.Show(this.accesoDenegado, "", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                }
            }
            else
            {
                System.Windows.Forms.MessageBox.Show(this.accesoDenegado, "", MessageBoxButtons.OK, MessageBoxIcon.Stop);
            }

        }

        private void clasificaciónToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (this.sEG_PERMISOSTableAdapter.FillByTipoGrupo(this.aUDITORIADataSet.SEG_PERMISOS, ClasificacionBienesServicios.TIPO + sEG_USUARIOSRow.CODGRU) > 0)
            {
                if (this.aUDITORIADataSet.SEG_PERMISOS[0].INGRESAR.Equals(true))
                {
                    Maestro_Proveedores.Session.Seg_PERMRow = this.aUDITORIADataSet.SEG_PERMISOS[0];
                    try { Maestro_Proveedores.herramientas.Redirect.open("ClasificacionBienesServicios"); }
                    catch (Exception ex) { MessageBox.Show(ex.Message); }
                }
                else
                {
                    System.Windows.Forms.MessageBox.Show(this.accesoDenegado, "", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                }
            }
            else
            {
                System.Windows.Forms.MessageBox.Show(this.accesoDenegado, "", MessageBoxButtons.OK, MessageBoxIcon.Stop);
            }

        }

        private void mantenimientoToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            if (this.sEG_PERMISOSTableAdapter.FillByTipoGrupo(this.aUDITORIADataSet.SEG_PERMISOS, Mantenimiento.TIPO + sEG_USUARIOSRow.CODGRU) > 0)
            {
                if (this.aUDITORIADataSet.SEG_PERMISOS[0].INGRESAR.Equals(true))
                {
                    Maestro_Proveedores.Session.Seg_PERMRow = this.aUDITORIADataSet.SEG_PERMISOS[0];
                    try { Maestro_Proveedores.herramientas.Redirect.open("Mantenimiento"); }
                    catch (Exception ex) { MessageBox.Show(ex.Message); }
                }
                else
                {
                    System.Windows.Forms.MessageBox.Show(this.accesoDenegado, "", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                }
            }
            else
            {
                System.Windows.Forms.MessageBox.Show(this.accesoDenegado, "", MessageBoxButtons.OK, MessageBoxIcon.Stop);
            }

        }

        private void consultarProveedoresToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (this.sEG_PERMISOSTableAdapter.FillByTipoGrupo(this.aUDITORIADataSet.SEG_PERMISOS, ConsultarProveedor.TIPO + sEG_USUARIOSRow.CODGRU) > 0)
            {
                if (this.aUDITORIADataSet.SEG_PERMISOS[0].INGRESAR.Equals(true))
                {
                    Maestro_Proveedores.Session.Seg_PERMRow = this.aUDITORIADataSet.SEG_PERMISOS[0];
                    try { Maestro_Proveedores.herramientas.Redirect.open("ConsultarProveedor"); }
                    catch (Exception ex) { MessageBox.Show(ex.Message); }
                }
                else
                {
                    System.Windows.Forms.MessageBox.Show(this.accesoDenegado, "", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                }
            }
            else
            {
                System.Windows.Forms.MessageBox.Show(this.accesoDenegado, "", MessageBoxButtons.OK, MessageBoxIcon.Stop);
            }

        }

        private void consultarRechazosToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (this.sEG_PERMISOSTableAdapter.FillByTipoGrupo(this.aUDITORIADataSet.SEG_PERMISOS, ConsultarRechazos.TIPO + sEG_USUARIOSRow.CODGRU) > 0)
            {
                if (this.aUDITORIADataSet.SEG_PERMISOS[0].INGRESAR.Equals(true))
                {
                    Maestro_Proveedores.Session.Seg_PERMRow = this.aUDITORIADataSet.SEG_PERMISOS[0];
                    try { Maestro_Proveedores.herramientas.Redirect.open("ConsultarRechazos"); }
                    catch (Exception ex) { MessageBox.Show(ex.Message); }
                }
                else
                {
                    System.Windows.Forms.MessageBox.Show(this.accesoDenegado, "", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                }
            }
            else
            {
                System.Windows.Forms.MessageBox.Show(this.accesoDenegado, "", MessageBoxButtons.OK, MessageBoxIcon.Stop);
            }

        }

        private void registrarRechazoToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (this.sEG_PERMISOSTableAdapter.FillByTipoGrupo(this.aUDITORIADataSet.SEG_PERMISOS, RegistrarRechazos.TIPO + sEG_USUARIOSRow.CODGRU) > 0)
            {
                if (this.aUDITORIADataSet.SEG_PERMISOS[0].INGRESAR.Equals(true))
                {
                    Maestro_Proveedores.Session.Seg_PERMRow = this.aUDITORIADataSet.SEG_PERMISOS[0];
                    try { Maestro_Proveedores.herramientas.Redirect.open("RegistrarRechazos"); }
                    catch (Exception ex) { MessageBox.Show(ex.Message); }
                }
                else
                {
                    System.Windows.Forms.MessageBox.Show(this.accesoDenegado, "", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                }
            }
            else
            {
                System.Windows.Forms.MessageBox.Show(this.accesoDenegado, "", MessageBoxButtons.OK, MessageBoxIcon.Stop);
            }
        }

        private void contenidoToolStripMenuItem_Click(object sender, EventArgs e)
        {
            MessageBox.Show(Application.StartupPath + "/documentacion/help/Documentation.chm");
        }

        private void registrarDevoluciónToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (this.sEG_PERMISOSTableAdapter.FillByTipoGrupo(this.aUDITORIADataSet.SEG_PERMISOS, ConsultarDevoluciones.TIPO + sEG_USUARIOSRow.CODGRU) > 0)
            {
                if (this.aUDITORIADataSet.SEG_PERMISOS[0].INGRESAR.Equals(true))
                {
                    Maestro_Proveedores.Session.Seg_PERMRow = this.aUDITORIADataSet.SEG_PERMISOS[0];
                    try { Maestro_Proveedores.herramientas.Redirect.open("ConsultarDevoluciones"); }
                    catch (Exception ex) { MessageBox.Show(ex.Message); }
                }
                else
                {
                    System.Windows.Forms.MessageBox.Show(this.accesoDenegado, "", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                }
            }
            else
            {
                System.Windows.Forms.MessageBox.Show(this.accesoDenegado, "", MessageBoxButtons.OK, MessageBoxIcon.Stop);
            }
        }

        private void generarActaDeEntregaToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (this.sEG_PERMISOSTableAdapter.FillByTipoGrupo(this.aUDITORIADataSet.SEG_PERMISOS, EvaluarProveedor.TIPO + sEG_USUARIOSRow.CODGRU) > 0)
            {
                if (this.aUDITORIADataSet.SEG_PERMISOS[0].INGRESAR.Equals(true))
                {
                    Maestro_Proveedores.Session.Seg_PERMRow = this.aUDITORIADataSet.SEG_PERMISOS[0];
                    try { Maestro_Proveedores.herramientas.Redirect.open("EvaluarProveedor"); }
                    catch (Exception ex) { MessageBox.Show(ex.Message); }
                }
                else
                {
                    System.Windows.Forms.MessageBox.Show(this.accesoDenegado, "", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                }
            }
            else
            {
                System.Windows.Forms.MessageBox.Show(this.accesoDenegado, "", MessageBoxButtons.OK, MessageBoxIcon.Stop);
            }
        }

        private void ejecutarScriptToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (!sEG_USUARIOSRow.USUARIO.Equals("AWILCHES") && !sEG_USUARIOSRow.USUARIO.Equals("DIN"))
                this.administraciónToolStripMenuItem.Visible = false;


            if (this.sEG_PERMISOSTableAdapter.FillByTipoGrupo(this.aUDITORIADataSet.SEG_PERMISOS, EjecutarScript.TIPO + sEG_USUARIOSRow.CODGRU) > 0)
            {
                if (this.aUDITORIADataSet.SEG_PERMISOS[0].INGRESAR.Equals(true))
                {
                    Maestro_Proveedores.Session.Seg_PERMRow = this.aUDITORIADataSet.SEG_PERMISOS[0];
                    try { Maestro_Proveedores.herramientas.Redirect.open("EjecutarScript"); }
                    catch (Exception ex) { MessageBox.Show(ex.Message); }
                }
                else
                {
                    System.Windows.Forms.MessageBox.Show(this.accesoDenegado, "", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                }
            }
            else
            {
                System.Windows.Forms.MessageBox.Show(this.accesoDenegado, "", MessageBoxButtons.OK, MessageBoxIcon.Stop);
            }      
        }

        private void auditoriaToolStripMenuItem_Click(object sender, EventArgs e)
        {            
            if (this.sEG_PERMISOSTableAdapter.FillByTipoGrupo(this.aUDITORIADataSet.SEG_PERMISOS, ConsultarAuditoria.TIPO + sEG_USUARIOSRow.CODGRU) > 0)
            {
                if (this.aUDITORIADataSet.SEG_PERMISOS[0].INGRESAR.Equals(true))
                {
                    Maestro_Proveedores.Session.Seg_PERMRow = this.aUDITORIADataSet.SEG_PERMISOS[0];
                    try { Maestro_Proveedores.herramientas.Redirect.open("ConsultarAuditoria"); }
                    catch (Exception ex) { MessageBox.Show(ex.Message); }
                }
                else
                {
                    System.Windows.Forms.MessageBox.Show(this.accesoDenegado, "", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                }
            }
            else
            {
                System.Windows.Forms.MessageBox.Show(this.accesoDenegado, "", MessageBoxButtons.OK, MessageBoxIcon.Stop);
            }            
        }

        private void verificarInciosDeSesiónToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (this.sEG_PERMISOSTableAdapter.FillByTipoGrupo(this.aUDITORIADataSet.SEG_PERMISOS, ConsultarIniciosDeSesion.TIPO + sEG_USUARIOSRow.CODGRU) > 0)
            {
                if (this.aUDITORIADataSet.SEG_PERMISOS[0].INGRESAR.Equals(true))
                {
                    Maestro_Proveedores.Session.Seg_PERMRow = this.aUDITORIADataSet.SEG_PERMISOS[0];
                    try { Maestro_Proveedores.herramientas.Redirect.open("ConsultarIniciosDeSesion"); }
                    catch (Exception ex) { MessageBox.Show(ex.Message); }
                }
                else
                {
                    System.Windows.Forms.MessageBox.Show(this.accesoDenegado, "", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                }
            }
            else
            {
                System.Windows.Forms.MessageBox.Show(this.accesoDenegado, "", MessageBoxButtons.OK, MessageBoxIcon.Stop);
            }
        }

        private void certificarProveedorestoolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (this.sEG_PERMISOSTableAdapter.FillByTipoGrupo(this.aUDITORIADataSet.SEG_PERMISOS, EvaluarProveedor.TIPO + sEG_USUARIOSRow.CODGRU) > 0)
            {
                if (this.aUDITORIADataSet.SEG_PERMISOS[0].INGRESAR.Equals(true))
                {
                    Maestro_Proveedores.Session.Seg_PERMRow = this.aUDITORIADataSet.SEG_PERMISOS[0];
                    try { Maestro_Proveedores.herramientas.Redirect.open("CertificarProveedor"); }
                    catch (Exception ex) { MessageBox.Show(ex.Message); }
                }
                else
                {
                    System.Windows.Forms.MessageBox.Show(this.accesoDenegado, "", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                }
            }
            else
            {
                System.Windows.Forms.MessageBox.Show(this.accesoDenegado, "", MessageBoxButtons.OK, MessageBoxIcon.Stop);
            }
        }

        private void generarCertificadosToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (this.sEG_PERMISOSTableAdapter.FillByTipoGrupo(this.aUDITORIADataSet.SEG_PERMISOS, EvaluarProveedor.TIPO + sEG_USUARIOSRow.CODGRU) > 0)
            {
                if (this.aUDITORIADataSet.SEG_PERMISOS[0].INGRESAR.Equals(true))
                {
                    Maestro_Proveedores.Session.Seg_PERMRow = this.aUDITORIADataSet.SEG_PERMISOS[0];
                    try { Maestro_Proveedores.herramientas.Redirect.open("GenerarCertificados"); }
                    catch (Exception ex) { MessageBox.Show(ex.Message); }
                }
                else
                {
                    System.Windows.Forms.MessageBox.Show(this.accesoDenegado, "", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                }
            }
            else
            {
                System.Windows.Forms.MessageBox.Show(this.accesoDenegado, "", MessageBoxButtons.OK, MessageBoxIcon.Stop);
            }
        }   

        private void reporte_devolucionesToolStripMenuItem_Click(object sender, EventArgs e)
        {
            try
            {
                //if (this.sEG_USUARIOSRow != null)
                //{
                //    if (!this.sEG_USUARIOSRow.CODGRU.Equals("23") && !this.sEG_USUARIOSRow.CODGRU.Equals("13"))
                //    {
                //        System.Windows.Forms.MessageBox.Show(this.accesoDenegado, "", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                //        return;
                //    }
                //}


                Parametros p = (Parametros)herramientas.Redirect.getFormulario("Parametros");
                p.ShowDialog();
                if (!p.ok)
                    return;
                new _Maestro_Proveedores_CORPORATIVADataSetTableAdapters.devolucionesTableAdapter().FillByFecha
                    (
                    this.cORPORATIVADataSet.devoluciones,
                    p.fechaInicio,
                    p.fechaFin
                    );
                herramientas.Exportacion.exportar(this.cORPORATIVADataSet.devoluciones, "Devoluciones");
            }
            catch (Exception ex) 
            {
                herramientas.MessageException.show(ex);
            }
        }

        private void reporte_RechazosToolStripMenuItem_Click(object sender, EventArgs e)
        {
            try
            {

                //if (this.sEG_USUARIOSRow != null)
                //{
                //    if (!this.sEG_USUARIOSRow.CODGRU.Equals("23") && !this.sEG_USUARIOSRow.CODGRU.Equals("13"))
                //    {
                //        System.Windows.Forms.MessageBox.Show(this.accesoDenegado, "", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                //        return;
                //    }
                //}
                
                Parametros p = (Parametros)herramientas.Redirect.getFormulario("Parametros");
                p.ShowDialog();
                if (!p.ok)
                    return;
                new _Maestro_Proveedores_CORPORATIVADataSetTableAdapters.rechazosTableAdapter().FillByfechas
                    (
                    this.cORPORATIVADataSet.rechazos,
                    p.fechaInicio,
                    p.fechaFin
                    );
                herramientas.Exportacion.exportar(this.cORPORATIVADataSet.rechazos, "Rechazos");
            }
            catch (Exception ex)
            {
                herramientas.MessageException.show(ex);
            }
        }

        private void reporte_iniciosDeSesiónToolStripMenuItem_Click(object sender, EventArgs e)
        {
            try
            {
                //if (this.sEG_USUARIOSRow != null)
                //{
                //    if (!this.sEG_USUARIOSRow.CODGRU.Equals("23") && !this.sEG_USUARIOSRow.CODGRU.Equals("13"))
                //    {
                //        System.Windows.Forms.MessageBox.Show(this.accesoDenegado, "", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                //        return;
                //    }
                //}

                Parametros p = (Parametros)herramientas.Redirect.getFormulario("Parametros");
                p.ShowDialog();
                if (!p.ok)
                    return;
                new _Maestro_Proveedores_CORPORATIVADataSetTableAdapters.controlAccesoTableAdapter().FillByFechas
                    (
                    this.cORPORATIVADataSet.controlAcceso,
                    p.fechaInicio,
                    p.fechaFin
                    );
                herramientas.Exportacion.exportar(this.cORPORATIVADataSet.controlAcceso, "Control de acceso");
            }
            catch (Exception ex)
            {
                herramientas.MessageException.show(ex);
            }
        }

        private void reporte_proveedoresActivosEInactivosxlsToolStripMenuItem_Click(object sender, EventArgs e)
        {
            try
            {
                //if (this.sEG_USUARIOSRow != null)
                //{
                //    if (!this.sEG_USUARIOSRow.CODGRU.Equals("23") && !this.sEG_USUARIOSRow.CODGRU.Equals("13"))
                //    {
                //        System.Windows.Forms.MessageBox.Show(this.accesoDenegado, "", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                //        return;
                //    }
                //}

                new _Maestro_Proveedores_CORPORATIVADataSetTableAdapters.proveedoresActivosEInactivosTableAdapter().Fill
                    (
                    this.cORPORATIVADataSet.proveedoresActivosEInactivos
                    );
                herramientas.Exportacion.exportar(this.cORPORATIVADataSet.proveedoresActivosEInactivos, "Proveedores activos e inactivos");
            }
            catch (Exception ex)
            {
                herramientas.MessageException.show(ex);
            }            
        }

        private void reporte_reclamosAProveedoresToolStripMenuItem_Click(object sender, EventArgs e)
        {
            try
            {
                //if (this.sEG_USUARIOSRow != null)
                //{
                //    if (!this.sEG_USUARIOSRow.CODGRU.Equals("23") && !this.sEG_USUARIOSRow.CODGRU.Equals("13"))
                //    {
                //        System.Windows.Forms.MessageBox.Show(this.accesoDenegado, "", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                //        return;
                //    }
                //}

                Parametros p = (Parametros)herramientas.Redirect.getFormulario("Parametros");
                p.ShowDialog();
                if (!p.ok)
                    return;
                new _Maestro_Proveedores_CORPORATIVADataSetTableAdapters.reclamosTableAdapter().FillByFechas
                    (
                    this.cORPORATIVADataSet.reclamos,
                    p.fechaInicio,
                    p.fechaFin
                    );
                herramientas.Exportacion.exportar(this.cORPORATIVADataSet.reclamos, "Reclamos a proveedores");
            }
            catch (Exception ex)
            {
                herramientas.MessageException.show(ex);
            }
        }

        private void facturacionProveedoresToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (this.sEG_PERMISOSTableAdapter.FillByTipoGrupo(this.aUDITORIADataSet.SEG_PERMISOS, ConsultarFacProveedor.TIPO + sEG_USUARIOSRow.CODGRU) > 0)
            {
                if (this.aUDITORIADataSet.SEG_PERMISOS[0].INGRESAR.Equals(true))
                {
                    Maestro_Proveedores.Session.Seg_PERMRow = this.aUDITORIADataSet.SEG_PERMISOS[0];
                    try { Maestro_Proveedores.herramientas.Redirect.open("ConsultarFacProveedor"); }
                    catch (Exception ex) { MessageBox.Show(ex.Message); }
                }
                else
                {
                    System.Windows.Forms.MessageBox.Show(this.accesoDenegado, "", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                }
            }
            else
            {
                System.Windows.Forms.MessageBox.Show(this.accesoDenegado, "", MessageBoxButtons.OK, MessageBoxIcon.Stop);
            }

        }

        private void vencimientoOCToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (this.sEG_PERMISOSTableAdapter.FillByTipoGrupo(this.aUDITORIADataSet.SEG_PERMISOS, ConsultarOrdenesCompra.TIPO + sEG_USUARIOSRow.CODGRU) > 0)
            {
                if (this.aUDITORIADataSet.SEG_PERMISOS[0].INGRESAR.Equals(true))
                {
                    Maestro_Proveedores.Session.Seg_PERMRow = this.aUDITORIADataSet.SEG_PERMISOS[0];
                    try { Maestro_Proveedores.herramientas.Redirect.open("ConsultarOrdenesCompra"); }
                    catch (Exception ex) { MessageBox.Show(ex.Message); }
                }
                else
                {
                    System.Windows.Forms.MessageBox.Show(this.accesoDenegado, "", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                }
            }
            else
            {
                System.Windows.Forms.MessageBox.Show(this.accesoDenegado, "", MessageBoxButtons.OK, MessageBoxIcon.Stop);
            }
        }

        private void gestionDeInventarioToolStripMenuItem_Click(object sender, EventArgs e)
        {
            try
            {
                AlmDemanda almDemanda = new AlmDemanda();
                almDemanda.MdiParent = this;
                almDemanda.Show();
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
        }

        private void modificacionesOCToolStripMenuItem_Click(object sender, EventArgs e)
        {
            try { 
                Maestro_Proveedores.herramientas.Redirect.open("Modificaciones"); 
            }
            catch (Exception ex) 
            { 
                MessageBox.Show(ex.Message); 
            }
        }

        private void pronosticoToolStripMenuItem_Click(object sender, EventArgs e)
        {
            try
            {
                Maestro_Proveedores.Forms.AlmDemanda pronostico = new AlmDemanda();
                pronostico.MdiParent = this;
                pronostico.Show();
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
        }

        private void materialesStockToolStripMenuItem_Click(object sender, EventArgs e)
        {
            try
            {
                Maestro_Proveedores.FormALMSTOCK almStock = new FormALMSTOCK();
                almStock.MdiParent = this;
                almStock.Show();
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
        }

        private void aCTUALIZARnOTIFICACIONESbutton_Click(object sender, EventArgs e)
        {
            //Manejo de mensajes
            Mensajes.FormMostrarMensajes frmMostrarMensajes = new Mensajes.FormMostrarMensajes(sEG_USUARIOSRow.USUARIO);
            if (frmMostrarMensajes.cORPORATIVADataSet.MEN_REGISTROS.Count > 0)
                frmMostrarMensajes.ShowDialog();
        }

        private void adminModificacionesOCToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (this.sEG_PERMISOSTableAdapter.FillByTipoGrupo(this.aUDITORIADataSet.SEG_PERMISOS, Forms.ModificacionesAdmon.TIPO + sEG_USUARIOSRow.CODGRU) > 0)
            {
                if (this.aUDITORIADataSet.SEG_PERMISOS[0].INGRESAR.Equals(true))
                {
                    //Maestro_Proveedores.Session.Seg_PERMRow = this.aUDITORIADataSet.SEG_PERMISOS[0];
                    try { Maestro_Proveedores.herramientas.Redirect.open("ModificacionesAdmon"); }
                    catch (Exception ex) { MessageBox.Show(ex.Message); }
                }
                else
                {
                    System.Windows.Forms.MessageBox.Show(this.accesoDenegado, "", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                }
            }
            else
            {
                System.Windows.Forms.MessageBox.Show(this.accesoDenegado, "", MessageBoxButtons.OK, MessageBoxIcon.Stop);
            }
        }

        private void exportarModificacionesOCToolStripMenuItem_Click(object sender, EventArgs e)
        {
            try
            {
                string connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["Maestro_Proveedores.Properties.Settings.PRV_ConnectionString"].ConnectionString;
                DataTable table = new DataTable();
                table.TableName = "Modificaciones OC";
                using (SqlConnection conn = new System.Data.SqlClient.SqlConnection(connectionString))
                {
                    conn.Open();
                    SqlCommand command = conn.CreateCommand();
                    command.CommandType = CommandType.Text;
                    command.CommandText="";
                    command.CommandText = command.CommandText + " SELECT t1.idproveedor as [ID PROVEEDOR], t2.razon_social as [RAZON SOCIAL], t1.asunto as [ASUNTO], CONVERT(varchar(10),fecha_solicitud,111) as [FECHA SOLICITUD], t1.motivo as [MOTIVO], t1.causal as [CAUSAL], t1.descripcion_asunto as [DESC. ASUNTO], t1.estado as [ESTADO], t1.CodOrdenCompra as [CODIGO OC], t1.TipoOrdenCompra as [TIPO OC]";
                    command.CommandText = command.CommandText + " FROM PRV_MODIFICACIONES_OC t1 inner join PRV_PROVEEDOR t2 on t1.idproveedor=t2.id";
                    command.CommandText = command.CommandText + " ORDER BY fecha_solicitud DESC";
                    //command.CommandText = command.CommandText + "WHERE CONVERT(varchar(10),fecha_solicitud,111) between '2013/08/01' and '2013/08/31'";
                    table.Load(command.ExecuteReader());
                    conn.Close();
                }
                herramientas.Exportacion.exportar_NUEVO(table,true);
            }
            catch (Exception ex)
            {
                herramientas.MessageException.show(ex);
            }
        }

        private void exportarEvaluacioToolStripMenuItem_Click(object sender, EventArgs e)
        {
            try
            {
                string connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["Maestro_Proveedores.Properties.Settings.PRV_ConnectionString"].ConnectionString;
                DataTable table = new DataTable();
                table.TableName = "Evaluaciones de desempeno";
                using (SqlConnection conn = new System.Data.SqlClient.SqlConnection(connectionString))
                {
                    conn.Open();
                    SqlCommand command = conn.CreateCommand();
                    command.CommandType = CommandType.Text;
                    command.CommandText = "";
                    command.CommandText = command.CommandText + " select	t1.codigo AS [OC],MAX(t1.fecha_evaluacion) AS [FECHA EVALUACION] ,MAX(CASE WHEN tipo_criterio='Calidad' THEN prom ELSE 0 END) AS [CALIDAD] ,MAX(CASE WHEN tipo_criterio='Cumplimiento' THEN prom ELSE 0 END) AS [CUMPLIMIENTO] ,MAX(CASE WHEN tipo_criterio='Seguridad y medio ambiente' THEN prom ELSE 0 END) AS [Seguridad y medio ambiente],MAX(t1.id_proveedor) as [ID PROV],MAX(t3.nit) as [NIT PROV], MAX(t3.razon_social) as [RAZON SOCIAL PROV]";
                    command.CommandText = command.CommandText + " from	PRV_EVAL_DESMP t1 inner join (select id_evaluacion,tipo_criterio,AVG(calificacion) as prom from PRV_DETLL_EVAL group by id_evaluacion,tipo_criterio) t2 on t1.id=t2.id_evaluacion left join PRV_PROVEEDOR t3 on t1.id_proveedor=t3.id";
                    command.CommandText = command.CommandText + " GROUP BY t1.codigo";
                    command.CommandText = command.CommandText + " ORDER BY MAX(t1.fecha_evaluacion) desc";
                    //command.CommandText = command.CommandText + "WHERE CONVERT(varchar(10),fecha_solicitud,111) between '2013/08/01' and '2013/08/31'";
                    table.Load(command.ExecuteReader());
                    conn.Close();
                }
                herramientas.Exportacion.exportar_NUEVO(table, true);
            }
            catch (Exception ex)
            {
                herramientas.MessageException.show(ex);
            }
        }
    }
}
